/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.cardapiodigital.model;


import br.com.cardapiodigital.data.EstadosData;
import br.com.cardapiodigital.entity.Estados;
import br.com.cardapiodigital.exception.CardapioDigitalException;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.primefaces.event.SelectEvent;


/**
 *
 * @author egberto
 */
@ManagedBean
@ViewScoped
public class EstadosModel extends AbstractModel implements Serializable{
    
    private static final long serialVersionUID = 1L;
    
    private EstadosData estadoData = null;
    private Estados estado = null;
    private List<Estados> todosEstados = null;
    private Estados estadoSelecionado = null;
       
    
    public EstadosModel(){       
    }
    
    public void salvar() {
        try {      
            getEstadoData().salvar(getEstado());            
            closeDialog();
            displayInfoMessageToUser("Created With Sucess");
            carregarTodosEstados();
            resetEstado();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
    
    public void atualizar(){
        try {
            getEstadoData().atualizar(getEstadoSelecionado());
            closeDialog();
            displayInfoMessageToUser("Updated With Sucess");
            carregarTodosEstados();
            resetEstado();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
    
    public void excluir(){
        try {           
            getEstadoData().excluir(getEstadoSelecionado().getUf());
            closeDialog();
            displayInfoMessageToUser("Deleted With Sucess");
            carregarTodosEstados();
            resetEstado();
        } catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ops, we could not create. Try again later");
            e.printStackTrace();
        }
    }
       

    public EstadosData getEstadoData() {
        if(this.estadoData == null){
            this.estadoData = new EstadosData();
        }
        return this.estadoData;
    }    

    public Estados getEstado() {
        if(this.estado == null){
            this.estado = new Estados();
        }
        return estado;
    }

    public void setEstado(Estados estado) {
        this.estado = estado;
    }  
    
    
    public List<Estados> carregarTodosEstados() throws CardapioDigitalException {
        return todosEstados = getEstadoData().buscarTodos();
    }

    public void resetEstado() {
        estado = new Estados();
    }

    public Estados getEstadoSelecionado() {
        if(estadoSelecionado == null){
            estadoSelecionado = new Estados();
        }               
        return estadoSelecionado;
    }

    public void setEstadoSelecionado(Estados estadoSelecionado) {       
        this.estadoSelecionado = estadoSelecionado;
    }

    public List<Estados> getTodosEstados() {
        return todosEstados;
    }

    public void setTodosEstados(List<Estados> todosEstados) {
        this.todosEstados = todosEstados;
    }   

    public void onRowSelect(SelectEvent slc) {          
        setEstadoSelecionado((Estados) slc.getObject());  
    }  

    
    
    
}
